Generic technology of the high technology industries such as digital television, new generation mobile communications, broadband communications network and family consumer electronics focuses on multimedia of which the main content is video and audio processing technology, particularly on the data compressing technology. High efficient video encoding/decoding technology is the key of realizing high quality and low cost for storing and transmitting multimedia data.
In the existing video standards (such as MPEG series and H.26x series), there is a mode of skipped macroblock. So-called skipped macroblock means that it is not necessary to encode the additional information (for example, motion vector or residual) when encoding such kind of macroblocks, and it only exists in P-frame image and B-frame image, i.e. only existing in inter-frame encoding video images and not in intra-frame encoding video images like I-frame. The motion vector of the skipped macroblock is deducted by the motion vector of the adjacent pre-processed macroblocks (in time domain or space domain) without any residual data (the residual is 0 after quantization). Since processing the skipped macroblock is different from that of other macroblocks, it should be indicated while video encoding.
In MPEG 2 standard, the skipped macroblock is processed by “macroblock_address_increment”. If the “macroblock_address_increment” is larger than 1, it means that there are several skipped macroblocks.
In H.263 standard, a special bit is employed to indicate if there is a datum to be coded, i.e. “coded macroblock indication”, and 1 means no datum is the skipped macroblock while 0 means there is coded macroblock behind.
In H.264 standard, “run_length” code is employed to process the skipped macroblock and to code the number of skipped macroblocks. Such kind of processing method has the same theory of encoding the number of skipped macroblocks as the method of “macroblock_address_increment” in MPEG 2.
In the present technologies, the code efficiency is low only by using a single method to encode the skipped macroblock. For some flat sequences, there are many skipped macroblocks when the quantized parameters are a little larger, and at the meantime the “macroblock indication mode” needs one bit for each macroblock to indicate whether to skip the macroblock, which is low efficient; however, using “macroblock_address_increment” mode only needs variable_length code to encode the number of continuous skipped macroblocks. In the same way, for some sequences with big motion, the skipped macroblocks are fewer and the numbers of continuously appeared skipped macroblocks is also smaller when the quantized parameters are small, and the frequently appeared smaller numeral values are unfavorable to the variable_length code for encoding. For example, when using the variable_length code with the numeral value 3 to encode, it might need 3 bits to indicate, and if there are many such kind of small numeral values but no big numeral value (skipped macroblocks continuously appear), at the mean time, the fixed-length code can realize better encoding result. At the same time, for the single value 0 for indicating the non skipped macroblocks, the actual encoding bits of the “macroblock_address_increment” mode and the “coded macroblock indication” mode are the same. Meanwhile, the macroblock_address_increment mode can not take sufficient advantage of the variable_length code, and the encoding efficiency is also greatly lowered.
Selecting what kind of mode to encode the skipped macroblock in image encoding to gain the best encoding efficiency has become one of the difficulties to further improve the encoding efficiency in the video encoding field.